package com.authine.cloudpivot.ext.dto.model.report;

import com.authine.cloudpivot.ext.Enum.InvoiceBusinessType;
import com.authine.cloudpivot.ext.Enum.TradeOrderType;
import com.authine.cloudpivot.ext.dto.model.invoice.InvoiceDetail;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import lombok.experimental.SuperBuilder;

import java.util.List;

/**
 * @author Continue
 */
@Data
@SuperBuilder
@NoArgsConstructor
@Accessors(chain = true)
@ApiModel("成本报表")
public class HistoricalCostReport {
    private String groupField;
    private String invoiceApplyId;
    private String customerOrganizationId;
    private TradeOrderType tradeOrderType;
    /**
     * 发票业务类型
     */
    private InvoiceBusinessType businessType;
    /**
     * 负责人
     */
    private String principal;
    /**
     * 开票金额
     */
    private Double invoiceDetailAmount;
    /**
     * 开票日期
     */
    private String invoiceApplyTime;
    /**
     * 客户组织
     */
    private String organizationCompanyName;
    /**
     * 发票号码
     */
    private String invoiceApplyNumber;
    /**
     * 开票金额未税
     */
    private Double invoiceApplyPretaxAmount;
    /**
     * 开票订单编号
     */
    private String tradeCustomerOrderIdStr;
    /**
     * 父组织
     */
    private String parentOrganizationCompanyName;
    /**
     * 成本金额含税
     */
    private Double transferGoodsAmount;

    /**
     * 总成本金额未税
     */
    private Double transferGoodsPretaxAmount;
    /**
     * 平台供应商成本（未税）
     */
    private Double platformTransferGoodsPretaxAmount;
    /**
     * 原有供应商成本（未税）
     */
    private Double originTransferGoodsPretaxAmount;
    /**
     * 转采供货成本（未税）
     */
    private Double transferPretaxPurchaseAmount;
    /**
     * 普通代购成本（未税）
     */
    private Double ordinaryContractPretaxPurchaseAmount;
    /**
     * 特殊代购成本（未税）
     */
    private Double specialContractPretaxPurchaseAmount;
    /**
     * 平台服务费成本
     */
    private Double platformPretaxPurchaseAmount;
    /**
     * 垫资服务费成本
     */
    private Double interestPretaxPurchaseAmount;

    /**
     * 毛利金额未税
     */
    private Double maoriAmount;
    /**
     * 毛利率
     */
    private Double margin;
    /**
     * 是否转采
     */
    private String ifTransferStr;
    /**
     * 如果存在则需要获取转采实际成本
     */
    private List<InvoiceDetail> detailList;

    /**
     * 平台供应商（不含客户原有供应商和不含虚拟供应商）供货未税金额
     */
    private Double platformVendorAmount;
    /**
     * 客户原有供应商供货含税金额
     */
    private Double originVendorAmount;
    /**
     * 平台费:目前是在K3里面取数的，平台费发票管理，注意是未税
     */
    private Double pretaxPlatformFee;
    /**
     * 服务费:目前是在K3里面取数的，平台费发票管理，注意是未税
     */
    private Double pretaxInterestFee;
    /**
     * 代购服务费：注意是未税
     */
    private Double pretaxContractFee;
    /**
     * 货物价差
     */
    private Double priceDifference;
    /**
     * 利润合计
     */
    private Double totalProfit;
    /**
     * 平台供应商平台费
     */
    private Double platformVendorPretaxPlatformFee;
    /**
     * 类别
     */
    private String type;
    /**
     * 对应平台组织名称
     */
    private String platformOrgName;


    /**
     * 转采供货金额（未税）
     */
    private Double transferPretaxSaleAmount;
    /**
     * 普通代购（未税）
     */
    private Double ordinaryContractPretaxSaleAmount;
    /**
     * 特殊代购（未税）
     */
    private Double specialContractPretaxSaleAmount;
    /**
     * 平台服务费（未税）
     */
    private Double platformPretaxSaleAmount;
    /**
     * 垫资服务费（未税）
     */
    private Double interestPretaxSaleAmount;

    /**
     * 账期
     */
    private Integer period;


    /**
     * 平台供应商毛利
     * $F{platformVendorAmount}-$F{platformTransferGoodsPretaxAmount}
     */
    private Double platformVendorGross;
    /**
     * 原有供应商供毛利
     * $F{originVendorAmount}-$F{originTransferGoodsPretaxAmount}
     */
    private Double originVendorGross;

    /**
     * 转采供应商毛利
     * $F{transferPretaxSaleAmount}-$F{transferPretaxPurchaseAmount}
     */
    private Double transferVendorGross;
    /**
     * 普通代购毛利
     * $F{ordinaryContractPretaxSaleAmount}-$F{ordinaryContractPretaxPurchaseAmount}
     */
    private Double ordinaryContractGross;
    /**
     * 特殊代购毛利
     * $F{specialContractPretaxSaleAmount}-$F{specialContractPretaxPurchaseAmount}
     */
    private Double specialContractGross;
    /**
     * 平台服务费毛利
     * $F{platformPretaxSaleAmount}-$F{platformPretaxPurchaseAmount}
     */
    private Double platformFeeGross;
    /**
     * 垫资服务费毛利
     * $F{interestPretaxSaleAmount}-$F{interestPretaxPurchaseAmount}
     */
    private Double interestFeeGross;
    /**
     * 标准毛利率
     * ($F{period}/30*1.5+3)/100
     */
    private Double ordinaryGrossMargin;

    /**
     * 代购毛利率
     * ($F{ordinaryContractPretaxSaleAmount}-$F{ordinaryContractPretaxPurchaseAmount})/$F{ordinaryContractPretaxSaleAmount}
     */
    private Double contractGrossMargin;

    /**
     * 转采毛利率
     * ($F{transferPretaxSaleAmount}-$F{transferPretaxPurchaseAmount})/$F{transferPretaxSaleAmount}
     */
    private Double transferGrossMargin;
    /**
     * 奖金技提基数
     */
    private Double bonusSkillBase;
}
